 // 导入path内置模块 方便拼接绝对路径
const path = require("path")

// 导入webpack自动生成html插件
const htmlWebpackPlugin = require('html-webpack-plugin')

// 导入webpack自动生成css的文件插件
const miniCssExtractPlugin = require('mini-css-extract-plugin')


module.exports = {

    // 入口文件
    entry: './src/main.js', //enter:默认入口
    // 出口"文件夹”名
    output: {
        path: path.join(__dirname, "dist"),
        filename: "bundle.js"
    },
    plugins: [
        new htmlWebpackPlugin({
            // 以此为基准，生成打包后的html文件
            template: './public/index.html'
        }),
        new miniCssExtractPlugin({
            filename: "css/[name].css" // 打包后最终生成的 dist 文件里面的 打包后的 css 文件
        })
    ],
    module: {
        rules: [
            {
                test: /\.css$/i,
                use: [
                    // 这个loader取代style-loader。作用：提取js中的css成单独文件
                    miniCssExtractPlugin.loader,
                    // "style-loader",
                    "css-loader"]
            },
            {
                test: /\.less$/i,
                use: ["style-loader", "css-loader", "less-loader"]
            },
            {
                test: /\.(png|jpg|gif|jpeg)$/i,
                type: "asset"
            },
            {
                test: /\.(eot|svg|ttf|woff|woff2)$/,
                type: "asset/resource",  //当做静态资源直接复制文件
                generator: {  //规定导出字体文件名格式
                    filename: 'font/[name].[hash:6][ext]'
                }
            }
        ]
    }
}